
        <html>
			<head>
			     <title>你装的系统有毒——“苏拉克”木马详细分析 - 腾讯电脑管家</title>
				 <meta http-equiv="content-type" content="text/html; charset=UTF-8">
			</head>
			<body>
				<h1>原文地址:<a href="http://drops.wooyun.org/papers/11727">http://drops.wooyun.org/papers/11727</a></h1>
				
      <p>
        <h1>0x00 引言</h1>

<hr />

<p>刚重装的系统就中毒了，这是很多网友常常遇到的事，难道是中了引导区木马？甚至bios中毒？其实没那么复杂，很可能是你安装的系统自带了木马。</p>

<h1>0x01 “苏拉克”木马简介</h1>

<hr />

<p>“苏拉克”木马是2015下半年来持续爆发的木马，该木马感染了大量的计算机，其主要传播释放是直接在ghost镜像中植入木马，然后将ghost镜像上传到大量网站提供给用户下载，此外，近期也发现该木马的win8、win10版本通过oem激活工具植入用户电脑中。由于该木马的主要模块名为“surak.sys”，且通过分析得知该木马的项目名称即为“surak”，因此将其取名“苏拉克”木马。</p>

<!--more-->

<h1>0x02 “苏拉克”木马特点</h1>

<hr />

<ol>
<li>传播渠道隐蔽，由于该木马被直接植入到ghost镜像中，用户一安装系统就自带该木马，而此时尚未安装任何安全软件，因此木马的传播过程完全不在监控中。</li>
<li>影响用户多，由于大量网站传播该类ghost镜像，且此类网站投入了大量推广费进行推广，普通用户通过搜索引擎找到的镜像下载站几乎全是带木马的。此类镜像涵盖了“雨林木风”、“深度技术”、“电脑公司”、“萝卜家园”、“番茄花园”等主流ghost。</li>
<li>难以清除，由于木马进入系统时间比安全软件早，掌握了主动权，对其后安装的安全软件做了大量的功能限制，使其大量功能无法正常使用，如安全防护无法开启、信任列表被恶意操作等，导致难以检测和清除木马。</li>
<li>对用户电脑安全威胁大，“苏拉克”木马除了锁定浏览器主页获利外，还会实时连接云端获取指令，能够下载其它木马到本地执行，给系统安全造成了极大的威胁。此外，针对64位系统，该木马还会修改系统内核文件，使得64位系统自带的驱动签名校验、内核防钩子等安全机制全部失效。</li>
</ol>

<p><img src="http://static.wooyun.org//drops/20151231/20151231093007786491127.png" alt="p1" /> 图1. “苏拉克”木马产业链示意图</p>

<h1>0x03 “苏拉克”木马行为分析</h1>

<hr />

<p>“苏拉克”木马的功能主要分为4大模块，即内核Rootkit模块、应用层主体模块、应用层加载器模块、应用层上报模块。模块分工明确，可扩充性强，配置灵活，且所有的通讯都使用高强度加密算法加密（AES &amp; RSA），该木马有xp版、win7版、win8版、win10版，除xp版外其它版本又分为32位版本和64位版本，每个版本功能基本一致，以下以xp版本为例进行分析，其它版本行为类似。</p>

<p>通过各个模块分工协作，该木马完成了主页锁定、云端控制、插件下载、对抗安全软件等功能。</p>

<p><img src="http://static.wooyun.org//drops/20151231/2015123109300984850258.png" alt="p2" /></p>

<h3>1、启动模块行为（MD5：a3c79b97bdea22acadf951e0d1b06dbf）</h3>

<p>qidong32.dll的功能单一，其被注册成系统组件，开机时随系统启动，由Explorer.exe进程加载执行。该文件被加载后首先判断自己是否位于explorer.exe进程或者regsvr32.exe进程中，若是，则启动system32\drivers\UMDF\boot.exe文件。该文件是木马的主体文件，预置在带毒的Ghost系统中。</p>

<p><img src="http://static.wooyun.org//drops/20151231/2015123109301121955347.png" alt="p3" /> 图3</p>

<p><img src="http://static.wooyun.org//drops/20151231/2015123109301248202440.png" alt="p4" /> 图4</p>

<h3>2、主体模块行为（MD5：bf47d80de3852e7ef6b86ac213e46510）</h3>

<p>Boot.exe文件是该木马的主体模块，主要负责定时从云端下载最新的配置信息及负责其它模块的调度、插件下载、数据传递等。</p>

<ol>
<li><p>运行后首先从云端下载<code>http://xp.xitongzhu.com/2.0xpFileList.dl</code>文件，该文件使用AES加密，密钥为“<code>DownloadKey</code>”，顾名思义该配置文件与下载相关，解密后的该文件如图5所示，主要包含要下载的文件列表、文件类型、本地存储路径等。</p>

<p><img src="http://static.wooyun.org//drops/20151231/2015123109301483980530.png" alt="p5" /> 图5.解密后的2.0xpFileList.dl</p></li>
<li><p>解析配置文件，并进行相应的下载，下载完成后根据类型进行Load或者Exec。</p>

<p><img src="http://static.wooyun.org//drops/20151231/2015123109301669498629.png" alt="p6" /> 图6</p></li>
<li><p>完成以上行为后，将下载成功后的文件路径按一定格式存储，并使用AES加密（密钥：dl_encrypt）存储在<code>C:\Windows\System32\drivers\UMDF\dllist</code>文件中，即插件列表。</p>

<p><img src="http://static.wooyun.org//drops/20151231/2015123109301736520726.png" alt="p7" /> 图7. 存储插件列表</p></li>
<li><p>下载<code>http://xp.xitongzhu.com/2.0xpSurakConfig.cfg</code>到内存中，该文件是木马的配置文件，下载后计算配置文件的MD5值，并与<code>C:\Windows\System32\drivers\UMDF\hash\config</code>中存储的值进行比较，以判断配置文件是否更新，如果更新则将其传给<code>surak.sys</code>。</p>

<p><img src="http://static.wooyun.org//drops/20151231/2015123109301955824824.png" alt="p8" /> 图8. 下载配置文件并比较MD5</p></li>
<li><p>该配置文件分为三部分，分别使用AES进行加密，密钥均为“ConfigEncryptKey”，解密后的单个配置信息结构大致如图9所示。</p>

<p><img src="http://static.wooyun.org//drops/20151231/2015123109302035983923.png" alt="p9" /> 图9. 配置信息数据结构</p></li>
<li><p>配置文件对应的木马功能分别如下：</p>

<ul>
<li>注册表隐藏：阻止列表进程访问指定的注册表路径（图10）</li>
<li>文件隐藏拦截驱动加载：阻止列表进程访问指定文件，拦截指定驱动加载（图11、13）</li>
<li>进程隐藏三部分：当列表进程枚举系统进程列表时隐藏指定进程（图12）</li>
</ul>

<p><img src="http://static.wooyun.org//drops/20151231/20151231093022399641022.png" alt="p10" /> 图10. 注册表相关的配置信息</p>

<p><img src="http://static.wooyun.org//drops/20151231/20151231093034235011128.png" alt="p11" /> 图11. 文件操作相关的配置信息</p>

<p><img src="http://static.wooyun.org//drops/20151231/20151231093035717041220.png" alt="p12" /> 图12. 进程隐藏相关配置信息</p>

<p><img src="http://static.wooyun.org//drops/20151231/20151231093038760671318.png" alt="p13" /> 图13. 阻止驱动加载的相关配置信息</p></li>
<li><p>解密完配置文件后，依次将其加密后传递给内核<code>surak.sys</code>完成相应功能。</p>

<p><img src="http://static.wooyun.org//drops/20151231/20151231093040595021418.png" alt="p14" /> 图14. 将配置信息传递给surak.sys</p></li>
</ol>

<h3>3、Rootkit模块行为（MD5：8bb5cdc10c017d0c22348d2ada0ec1dc）</h3>

<ol>
<li><p>挂钩NtQuerySystemInformation函数，对应隐藏进程功能。在win7等64位系统中，由于“苏拉克”木马patch了系统的内核文件，因此挂钩此函数也不会引起蓝屏。</p>

<p><img src="http://static.wooyun.org//drops/20151231/20151231093042955541519.png" alt="p15" /> 图15</p></li>
<li><p>注册LoadImage回调，通过此回调函数，拦截指定sys文件加载，其拦截方式直接将DriverEntry初代码改成返回指令。</p>

<p><img src="http://static.wooyun.org//drops/20151231/20151231093043658281617.png" alt="p16" /> 图16</p></li>
<li><p>注册CmpCallback回调，对应注册表隐藏功能。</p>

<p><img src="http://static.wooyun.org//drops/20151231/20151231093045547551717.png" alt="p17" /> 图17</p></li>
<li><p>挂钩<code>IofCallDriver</code>、<code>IoCreateFileSpecifyDeviceObjectHint</code>，对应文件隐藏功能</p>

<p><img src="http://static.wooyun.org//drops/20151231/20151231093047198171813.png" alt="p18" /> 图18</p>

<p><img src="http://static.wooyun.org//drops/20151231/20151231093048175641913.png" alt="p19" /> 图19. 在x64版本的系统中，为了能够Hook内核，系统的内核文件被篡改</p></li>
</ol>

<h3>4、上报模块行为（MD5：595738d7ca9291a3d3322039bb4dc960）</h3>

<p>tj.dll文件主要用于上报，其主要功能是收集机器信息、木马版本信息、木马配置信息等，使用RSA做非对称加密，将信息上传到服务端。</p>

<p><img src="http://static.wooyun.org//drops/20151231/2015123109305051209209.png" alt="p20" /> 图20</p>

<h3>5、木马其它模块（插件）行为</h3>

<ol>
<li><p>ielock32.dll（MD5：fadb57ff6fbfaf5f7f09e83d0de4a2ed）用于锁定浏览器主页。该文件插入到explorer中，并通过挂钩进程创建函数，以添加命令行的方式锁主页。</p></li>
<li><p>subooa.sys、suboob.sys、subooc.sys（MD5：e94faf79a7681b33b903cceb1580d7c4）这三个驱动文件都会被加载到内核中，但只是一个空的工程，未见恶意代码。</p></li>
</ol>

<h1>0x04 传播渠道探索</h1>

<hr />

<p>“苏拉克”直接植入到ghost系统镜像中，其传播渠道主要是通过推广ghost系统传播扩散。从10月份以来，反病毒实验室监控到大量的传播带毒镜像的网站，此类网站一般伪装成“系统之家”网站，并通过搜索推广或者直接刷搜索引擎来使自身排名靠前。此外各大装机相关的论坛，布满了带毒ghost系统的推广帖，吸引大量网友上钩。</p>

<p><img src="http://static.wooyun.org//drops/20151231/20151231093051342022116.png" alt="p21" /> 图21. 伪装成系统之家的带毒ghost下载站</p>

<p><img src="http://static.wooyun.org//drops/20151231/20151231093053194812212.png" alt="p22" /> 图22. 通过广告或者刷排名来使自己排名靠前</p>

<p><img src="http://static.wooyun.org//drops/20151231/20151231093054561522312.png" alt="p23" /> 图23. 通过论坛发帖推广带毒ghost系统</p>

<h1>0x05 结语</h1>

<hr />

<p>随着安全软件的普及和防护能力的强化，木马想绕过安全软件的防护深入用户系统变得非常困难，因此黑产从业者们想方设法让自己先于安全软件进入用户的系统，并借先入之机大肆破坏后来安装的安全软件，从而达到霸占用户电脑并利用用户电脑实现盈利的目的。近期，腾讯反病毒实验室对通过国内各大搜索引擎查找“ghost”、“ghost xp”、“ghost win7”等关键词排名前10的ghost镜像全部进行下载安装分析，发现90%以上的ghost镜像都是带有木马的。管家在此建议用户选择正规渠道安装操作系统，通过下载ghost镜像安装系统虽然快速省事，但其安全性，确实很令人担忧。</p>

<h1>0x06 附录</h1>

<hr />

<p>目前已经发现通过各种渠道推广的带毒ghost镜像下载站列表，目前管家已拦截相关网站，大家下载相关文件时注意避开这些网站。</p>

<ul>
<li><a href="http://www.qcdzk.com ">http://www.qcdzk.com </a></li>
<li><a href="http://www.goodxitong.com ">http://www.goodxitong.com </a></li>
<li><a href="http://www.win879.com/ ">http://www.win879.com/ </a></li>
<li><a href="http://www.xitong365.com/ ">http://www.xitong365.com/ </a></li>
<li><a href="http://win7.xp1919.com/ ">http://win7.xp1919.com/ </a></li>
<li><a href="http://www.goodxitong.com">http://www.goodxitong.com</a></li>
<li><a href="http://www.tianph.com/">http://www.tianph.com/</a></li>
<li><a href="http://www.5jdg.com/">http://www.5jdg.com/</a></li>
<li><a href="http://www.uylmf.com/">http://www.uylmf.com/</a></li>
<li><a href="http://www.ghost666.com">http://www.ghost666.com</a></li>
<li><a href="http://xp.xitongzhjia.com/">http://xp.xitongzhjia.com/</a></li>
<li><a href="http://win7.ylmf99.com/">http://win7.ylmf99.com/</a></li>
<li><a href="http://www.gacrzm.com/">http://www.gacrzm.com/</a></li>
<li><a href="http://www.xitongbas.com/">http://www.xitongbas.com/</a></li>
<li><a href="http://www.jianyighost.net/">http://www.jianyighost.net/</a></li>
<li><a href="http://win7.win7xitong.com/">http://win7.win7xitong.com/</a></li>
<li><a href="http://www.95fn.com">http://www.95fn.com</a></li>
<li><a href="http://www.xyscai.com/">http://www.xyscai.com/</a></li>
<li><a href="http://www.win716.com/">http://www.win716.com/</a></li>
<li><a href="http://www.2356tv.com/">http://www.2356tv.com/</a></li>
<li><a href="http://www.gacrzm.com/ ">http://www.gacrzm.com/ </a></li>
<li><a href="http://www.ghost369.com/ ">http://www.ghost369.com/ </a></li>
<li><a href="http://www.xitonghaoyong.com/ ">http://www.xitonghaoyong.com/ </a></li>
<li><a href="http://www.windows66.com/ ">http://www.windows66.com/ </a></li>
<li><a href="http://xt.xp508.com/">http://xt.xp508.com/</a></li>
<li><a href="http://www.tianph.com/ ">http://www.tianph.com/ </a></li>
<li><a href="http://www.5jdg.com/ ">http://www.5jdg.com/ </a></li>
<li><a href="http://www.uylmf.com/ ">http://www.uylmf.com/ </a></li>
<li><a href="http://www.ghost666.com ">http://www.ghost666.com </a></li>
<li><a href="http://xp.xitongzhjia.com/ ">http://xp.xitongzhjia.com/ </a></li>
<li><a href="http://win7.ylmf99.com/ ">http://win7.ylmf99.com/ </a></li>
<li><a href="http://www.gacrzm.com/ ">http://www.gacrzm.com/ </a></li>
<li><a href="http://www.xitongbas.com/ ">http://www.xitongbas.com/ </a></li>
<li><a href="http://www.jianyighost.net/ ">http://www.jianyighost.net/ </a></li>
<li><a href="http://win7.win7xitong.com/ ">http://win7.win7xitong.com/ </a></li>
<li><a href="http://www.95fn.com">http://www.95fn.com</a></li>
<li><a href="http://www.sddiypc.com/ ">http://www.sddiypc.com/ </a></li>
<li><a href="http://www.goodxitong.com/ ">http://www.goodxitong.com/ </a></li>
<li><a href="http://www.101028.com/ ">http://www.101028.com/ </a></li>
<li><a href="http://www.5757sc.com/ ">http://www.5757sc.com/ </a></li>
<li><a href="http://www.ghost38.com/">http://www.ghost38.com/</a></li>
</ul>      </p>
    
			</body>
		</html>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          